//
// Created by lqk on 2022/1/27.
//

#ifndef QUADCEREBELLUM_CENTRALMAINTAINER_H
#define QUADCEREBELLUM_CENTRALMAINTAINER_H

#include "PeriodicFunctionTask.h"
#include "PeriodicTask.h"
#include "PeriodicTaskManager.h"
#include "MotorsStructs.h"
#include "EnumStructs.h"
#include "HighFrequencyTasksWrapper.h"
//#include "GazeboMotorsDriver.h"
#include "PyBulletMotorsDriver.h"
#include "PyBulletCheaterSensorDriver.h"
#include <lcm/lcm-cpp.hpp>



class CentralMaintainer {
public:
    CentralMaintainer(){}

    void Run(const RuningEnvironment& = RuningEnvironment::simulation);

    ~CentralMaintainer(){}

private:
    RuningEnvironment m_runningEnv;
    PeriodicTaskManager m_taskManager;
    MotorsCommand m_motorsCommand;
    MotorsInfo m_motorsInfo;
};


#endif //QUADCEREBELLUM_CENTRALMAINTAINER_H
